import Vue from 'vue';
import App from './App';
import router from './router';
import axios from 'axios';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css'; // 默认主题
// import '../static/css/theme-green/index.css';       // 浅绿色主题
import "babel-polyfill";
import methods from '@/util/methods'
import util from '@/util/util.js';
import Mint from 'mint-ui';
import 'mint-ui/lib/style.css'
import VueLazyload from 'vue-lazyload'
import vueCookie from 'vue-cookie';

Vue.use(VueLazyload)
Vue.use(Mint);
Vue.use(VueLazyload, {
    preLoad: 1.3,
    error: './assets/logo.png',
    loading: './assets/logo.png',
    attempt: 1
})

Vue.use(util);
Vue.use(vueCookie);
Vue.use(ElementUI, {
    size: 'small'
});
Vue.prototype.$axios = axios;


Vue.filter('fomatTime', methods.fomatTime)
Vue.filter('stateSwitchFliter', methods.stateSwitchFliter)
Vue.filter('userStateSwitchFliter', methods.userStateSwitchFliter)
Vue.filter('drawMoneyFliter', methods.drawMoneyFliter)
Vue.filter('getPrice', methods.getPrice)
Vue.filter('userIsWhiteFliter', methods.userIsWhiteFliter)

//使用钩子函数对路由进行权限跳转
// router.beforeEach((to, from, next) => {
//     const role = localStorage.getItem('ms_username');
//     if(!role && to.path !== '/login'){
//         next('/login');
//     }else if(to.meta.permission){
//         // 如果是管理员权限则可进入，这里只是简单的模拟管理员权限而已
//         role === 'admin' ? next() : next('/403');
//     }else{
//         // 简单的判断IE10及以下不进入富文本编辑器，该组件不兼容
//         if(navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor'){
//             Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器，请使用更高版本的浏览器查看', '浏览器不兼容通知', {
//                 confirmButtonText: '确定'
//             });
//         }else{
//             next();
//         }
//     }
// })
//使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {
    let isLogin = vueCookie.get("token");
    if (to.meta.requireAuth) {
        if (!isLogin) {
            if (to.path !== '/login') {
                next({
                    path: '/login'
                });
            } else {
                next();
            }
        } else {
            if (to.path === '/login') {
                next({
                    path: '/'
                });
            } else {
                next();
            }
        }
    } else {
        next();
    }
})

new Vue({
    router,
    render: h => h(App)
}).$mount('#app');
